﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data;
using MySql.Data.MySqlClient;

/// <summary>
/// Descripción breve de AfiliadosDA
/// </summary>
public static class AfiliadosDA
{

    public static DataTable selectAfiliados()
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable();
        string consulta = @"SELECT
        `afiliados`.`afiliadodni` AS `DNI`, `afiliados`.`afiliadoapellido` AS
        `Apellido`, `afiliados`.`afiliadonombre` AS `Nombre`,
         `afiliados`.`afiliadodomicilio` AS `Domicilio`, `afiliados`.`afiliadotelefono`
         AS `Telefono`, `afiliados`.`afiliadosexo` AS `Sexo`,
          DATE_FORMAT(`afiliados`.`afiliadofechanac`, '%d/%m/%Y') AS `Fecha Nac`, `afiliados`.`formapagoid` AS
          `Forma Pago`, `afiliados`.`filialid` AS `Filial`,`afiliados`.`planid` AS `Plan`,  `afiliados`.`afiliadoemail` AS `Email`
        FROM `afiliados` ORDER BY `afiliados`.`afiliadoapellido`;";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static DataTable selectAfiliado(string afiliadodni)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable();
        string consulta = @"SELECT
        `afiliados`.`afiliadodni` AS `DNI`, `afiliados`.`afiliadonombre` AS `Nombre`,
        `afiliados`.`afiliadoapellido` AS `Apellido`, `afiliados`.`afiliadodomicilio`
         AS `Domicilio`, `afiliados`.`afiliadotelefono` AS `Telefono`,
        `afiliados`.`afiliadosexo` AS `Sexo`, DATE_FORMAT(`afiliados`.`afiliadofechanac`, '%d/%m/%Y')
         AS `Fecha Nac`, `afiliados`.`planid` AS `Plan`, `afiliados`.`filialid` AS
         `Filial`, `afiliados`.`formapagoid` AS `Forma Pago`, `afiliados`.`afiliadoemail` AS `Email`
        FROM  `afiliados` WHERE `afiliados`.`afiliadodni`=" + afiliadodni;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }
    public static DataTable buscarAfiliadosxNombre(string apellido)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable("Tabla");
        string consulta = @"SELECT
        `afiliados`.`afiliadodni` AS `DNI`, `afiliados`.`afiliadoapellido` AS
        `Apellido`, `afiliados`.`afiliadonombre` AS `Nombre`,
         `afiliados`.`afiliadodomicilio` AS `Domicilio`, `afiliados`.`afiliadotelefono`
         AS `Telefono`, `afiliados`.`afiliadosexo` AS `Sexo`,
          DATE_FORMAT(`afiliados`.`afiliadofechanac`, '%d/%m/%Y') AS `Fecha Nac`, `afiliados`.`formapagoid` AS
          `Forma Pago`, `afiliados`.`filialid` AS `Filial`,`afiliados`.`planid` AS `Plan`
        FROM `afiliados` where `afiliados`.`afiliadoapellido` like '"+apellido+"%' ORDER BY `afiliados`.`afiliadoapellido`;";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static DataTable selectAfiliadoCompleto(string afiliadodni)
    {        
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable("tabla");
        string consulta = @"SELECT * 
                            FROM (((afiliados NATURAL JOIN planes) NATURAL JOIN tcredito) NATURAL JOIN filiales)
                            WHERE afiliadodni=" + afiliadodni;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);            
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static string insertAfiliado(string dni, string apellido, string nombre, string domicilio, string telefono, string sexo, string fechanac, string fechaalta, string planid, string filialid, string formadepagoid)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = @"INSERT INTO afiliados
                            values (" + dni + ",'" + apellido + "','" + nombre + "','" + domicilio + "','" + telefono + "','" + sexo + "','" + fechanac + "','" + fechaalta + "'," + planid + "," + filialid + "," + formadepagoid + ")";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "OK";
        }
        catch
        {
            return consulta;
        }
    }

    public static string updateAfiliado(string dni, string apellido, string nombre, string domicilio, string telefono, string sexo, string fechanac, string afiliadoemail, string planid, string filialid, string formadepagoid)
    {        
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = @"UPDATE afiliados
                            SET afiliadoapellido='" + apellido +
                            "', afiliadonombre='" + nombre +
                            "', afiliadodomicilio='" + domicilio +
                            "', afiliadotelefono='" + telefono +
                            "', afiliadosexo='" + sexo +
                            "', afiliadofechanac='" + fechanac +
                            "', afiliadoemail='" + afiliadoemail +
                            "', planid=" + planid +
                            ", filialid=" + filialid +
                            ", formapagoid=" + formadepagoid + 
                            " WHERE afiliadodni=" + dni;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "Los datos han sido modificados";
        }
        catch
        {
            return "Ha ocurrido un error con la siguiente consulta: " + consulta;
        }
    }

    public static string deleteAfiliado(string dni)
    {   //cuando se borra un afiliado la base de datos tb borra los familiares?
        
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = @"DELETE FROM afiliados
                            WHERE afiliadodni=" + dni;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "ok";
        }
        catch
        {
            return consulta;
        }
    }
}
